<?php
class ExcelsController extends AppController {
	public function index() {
		$this->layout = null;
	}

	public function utilisateurs(){
		$this->layout = null;
		$this->set('users', ClassRegistry::init('User')->find('all'));
	}

	public function commandes(){
		$this->layout = null;
		$this->loadModel('Commande');
		$this->Commande->recursive = 2;
		$commandes = $this->Commande->find('all');
		$this->set('commandes', $commandes);
	}

	public function produits(){
		$this->layout = null;
		$this->set('produits', ClassRegistry::init('Product')->find('all'));
	}

	public function statistiques(){
		$this->layout = null;
		$this->loadModel('Row');
		$this->loadModel('Category');
		$this->loadModel('Product');
		$this->loadModel('User');
		$categoriesAll = $this->Category->find('all');
		$products = $this->Product->find('all');
		$rows = $this->Row->find('all');
		

		/*
		 * Calcul des meilleures ventes
		 */
		$bestventes = [];
		for($i=0; $i < sizeof($rows); $i++){
			if(array_key_exists($rows[$i]['Product']['nom'], $bestventes)){
				$bestventes[$rows[$i]['Product']['nom']] += $rows[$i]['Row']['quantite'];
			}else{
				$bestventes[$rows[$i]['Product']['nom']] = $rows[$i]['Row']['quantite'];
			}
			
		}
		arsort($bestventes);
		

		/*
		 * Calcul des ventes par categories
		 */
		$ventesCategories = [];
		for($i=0; $i < sizeof($categoriesAll); $i++){
			$ventesCategories[$categoriesAll[$i]['Category']['id']]['nom'] =  $categoriesAll[$i]['Category']['nom'];
			$ventesCategories[$categoriesAll[$i]['Category']['id']]['ventes'] = 0;
		}

		for($i=0; $i < sizeof($rows); $i++){
			$ventesCategories[$rows[$i]['Product']['category_id']]['ventes'] += $rows[$i]['Row']['quantite'];
		}

		
		/*
		 * Nombre de produit par categorie
		 */
		$produitCategories = [];
		for($i=0; $i < sizeof($categoriesAll); $i++){
			$produitCategories[$categoriesAll[$i]['Category']['id']]['nom'] =  $categoriesAll[$i]['Category']['nom'];
			$produitCategories[$categoriesAll[$i]['Category']['id']]['nbr'] = 0;
		}

		for($i=0; $i < sizeof($products); $i++){
			$produitCategories[$products[$i]['Product']['category_id']]['nbr'] += 1;
		}

		/*
		 * Nombre de ventes par pays
		 */
		$ventesPays = [];
		for($i=0; $i < sizeof($rows); $i++){
			if(array_key_exists($rows[$i]['User']['pays'], $ventesPays)){
				$ventesPays[$rows[$i]['User']['pays']] += $rows[$i]['Row']['quantite'];
			}else{
				$ventesPays[$rows[$i]['User']['pays']] = $rows[$i]['Row']['quantite'];
			}
			
		}


		/*
		 * Moyenne age pour chaque categorie
		 */
		$ageCategories = [];
		for($i=0; $i < sizeof($categoriesAll); $i++){
			$ageCategories[$categoriesAll[$i]['Category']['id']]['nom'] =  $categoriesAll[$i]['Category']['nom'];
			$ageCategories[$categoriesAll[$i]['Category']['id']]['age'] = 0;
			$ageCategories[$categoriesAll[$i]['Category']['id']]['count'] = 0;

		}

		for($i=0; $i < sizeof($rows); $i++){
			$ageCategories[$rows[$i]['Product']['category_id']]['age'] += (int) ((time() - strtotime($rows[$i]['User']['date_naissance'])) / 3600 / 24 / 365);
			$ageCategories[$rows[$i]['Product']['category_id']]['count'] += 1;
		}

		foreach ($ageCategories as $key => $val) {
    		if($val['count'] != 0){
    			$ageCategories[$key]['moyenne'] = (int) ($val['age'] / $val['count']);
    		}else{
    			$ageCategories[$key]['moyenne'] = '0';
    		}
		}


		$this->set('bv', $bestventes);
		$this->set('vc', $ventesCategories);
		$this->set('vp', $ventesPays);
		$this->set('pc', $produitCategories);
		$this->set('ac', $ageCategories);
	}
}